home *** CD-ROM | disk | FTP | other *** search
-
- GEMAR-XFS-Driver - Restore via Desktop (c) Steffen Engel '93-'94
-
- Version 1.10 of 05.03.94
-
- MiNT can be seen as a standard for everone, since MultiTOS is released.
- Because of this it is very interesting to use a driver for installing a
- Streamer-Tape as a logical drive.
-
- For this there is GEMAR.XFS
-
- On the first hand side, a tape with a backup of GEMAR can be installed as a
- drive for restoring files, on the other hand side there is a device driver in
- GEMAR.XFS wich allows to access the tape as sequential device by any program
- (e.g. TAR or CPIO).
-
-
- Volume of Delivery:
-
- The driver can be registered by registered GEMAR-Users only and the fee is
- $ 25
-
- Registration is done with the program REG_XFS.PRG (only on registration disks)
-
-
- ASSUMPTIONS
-
- You need a streamer, of course and MiNT or MultiTOS.
- For use of the XFS-Part of GEMAR.XFS the streamer MUST be able to space
- backwards. Nowadays all streamers are able to space backwards, but some older
- drives sometimes do not have this capability (e.g. Tandberg TDC 3620 with
- Firmware 3.0)
-
-
- INSTALLATION
-
- Copy GEMAR.XFS to your MINT/MULTITOS-Folder (C:\MINT\ OR C:\MULTITIOS)
-
- Copy the file GEMARXFS.PAR in one of the folders C:\MINT\, C:\MULTITOS\,
- C:\SYS\ or C:\ as you want.
-
- Adjust the file GEMARXFS.PAR to your requirements (see 'PARAMERTERS').
-
- Copy TAPE.TTP to a folder, where it can be found by yout shell.
-
- Copy GEMARCNF.CPX into your CPX-Folder.
-
- On the next boot with MiNT/MultiTOS the driver will be installed.
-
-
- USE OF XFS
-
- The installing of a GEMAR-Backup as a logical drive can be initated with
- TAPE.TTP or the CPX.
- For use of TAPE.TTP please refer to the manual-page of TAPE
-
- A Backup of GEMAR will be installed by selecting the button 'XFS laden' (sorry,
- an english Version of the CPX is not available yet). After reading the index
- from tape the files can be accessed in the drive given in the parameterfile.
-
- From this drive you can copy files, start programs and everything else you can
- do with a hard drive partition.
-
- It's not possible to write files to this drive.
-
- ***************************** ATTENTION!! **********************************
-
- Never remove the tape without unloading the tape with the CPX or TAPE.TTP
- before.
-
-
- USING THE DEVICE
-
- Load the tape with TAPE.TTP or with the CPX with the button 'DEV laden'.
- After this EVERY program can access the tape as 'u:\dev\mt'
-
- Please pay attention to the restriction, that it is not possible to write and
- read data in mixed order. This is not possible due to restrictions of
- SCSI-Streamers.
-
- You either write from start of tape (erasing all data on the tape) or you have
- to wind to end of tape before writing to append data to the tape.
-
- By this way it is possible to exchange data with almost every operating system
- (OS/9, Unix, Minix, Linux...) by using TAR or CPIO for reading and writing the
- tapes.
-
- Examples
-
- tar -c u:\dev\mt c:\
- save all files of drive C: to the tape
-
- tar -t u:\dev\mt
- show contents of the tape
-
- You cann use CPIO, too or you can save a file from an editor as u:\dev\mt to
- write it to the tape.
-
- ***************************** ATTENTION!! **********************************
-
- Never remove the tape without unloading the tape with the CPX or TAPE.TTP
- before.
-
-
- PARAMETERS
-
- The parameterfile contains all information for accessing the streamer and
- installing the driver.
-
- -DEVICE = drv
- The drive the XFS will be installed in
-
- -XFSNAME = name
- With newer Versions of MiNT (>= 1.08) the XFS can be installed in drive U:\
- with a given name.
- If MiNT >= 1.08 is active and this parameter is given, the drive will be
- installed with this name. The folder is only accessible in U:\ when an XFS ist
- loaded.
-
- ATTENTION: please read the information in RESTRICTIONS!
-
- -BUFFER = num
- Size in kByte of the buffer used for buffering of accesses to the tape.
- The buffering of reading from u:\dev\mt (using the driver) can be switched
- off by the parameter BUFFERED, all other buffering can not be switched off.
-
- -BUFFERED = ON
- Buffering the reads from u:\dev\mt. Buffering is off on default, but can be
- switched on with TAPE.TTP at any time.
-
- -PREMSGTIME = num
- -POSTMSGTIME = num
- The parameters 'Wait before SCSI' and 'Wait after SCSI' as known from GEMAR.
-
- -DATATIMEOUT = num
- -LOADTIME = num
- -REWINDTIME = num
- -SPACETIME = num
- The parameters 'Data-Timeout', 'Load-Timeout', 'Rewind-Timeout' and
- 'Space-Timeout' as known from GEMAR.
-
- -BLOCKSIZE = num
- Blocksize of the streamer.
-
- -UNIT = DMA|ALIA|TT|FALCON
- The port, the streamer is connected to.
-
- -TARGET = num
- Target of the streamer, if connected to the DMA-Port.
-
- -SCSIID = num
- The SCSI-Id of the Streamers if the streamer ist connected to TT|FALCON|ALIA
-
- -QFA = NONE|SEEK|LOCATE
- Capabilities of Quick-File-Access of the streamer.
-
- -CMD = LOAD|UNIT_READY|MODE_SELECT|PREVENT_REMOVAL
- Commands to be used for the streamer.
- Please use the same Commands as in GEMAR.
- If you want to use more than one command the line can be used multiple e.g.
-
- CMD = LOAD
- CMD = MODE_SELECT
- CMD = PREVENT_REMOVAL
-
- -KEYFILE = path\name
- Path an name of GEMAR's Keyfile on you Harddisk.
- This file is used to check the primary index for valid.
-
-
- RESTRICTIONS
-
- The unregistered version is locked after accessing 15 files in XFS-mode (Fopen
- 15 times). The next access will be rejected by EACCDN.
-
- It is not possible to modify data on streamers or write files to the streamer
- due to the nature of streamers.
-
- Streamers not reporting BLANK CHECK, VADD and the missing blocks on Request
- sense may lead to problems on buffered reading of u:\dev\mt.
-
- By the time only the first Backup on a tape can be accessed vir the XFS.
-
- Coded Backups (Passowrd) can't be used.
-
- Tapes written by GEMAR < 2.0 can't be read.
-
- GEMINI 1.21 can't start programs from tape. The reason is unknown.
-
- In MiNT 1.08 there are two errors with the use of XFS-drivers not loacted on
- harddrive. Due to these errors you have to use MiNT 1.04 or fix the errors in
- MiNT 1.08:
-
- ****************************************************************************
-
- MiNT 1.08:
- Correct FILESYS.C:
- procedure disk_changed:
-
- *************************** FILESYS.C *******************************
- TRACE(("calling mediach(%d)",d));
- r = (int)mediach(d);
- TRACE(("mediach(%d) == %d", d, r));
-
- if (r < 0) return r;
-
- if (r == 1) { /* drive _may_ have changed */
- r = rwabs(0, tmpbuf, 1, 0, d, 0L); /* check the BIOS */
- if (r != E_CHNG) { /* nope, no change */
- TRACE(("rwabs returned %d", r));
- return (r < 0) ? r : 0;
- }
- r = 2; /* drive was definitely changed */
- }
- *********************************************************************
-
- The problem is:
-
- -mediach calls the hard disk driver for via hdvmediach.
- The driver does not know about this drive and says EUNDEV so disk_changed
- reports an error.
-
- So make this little change:
-
- ************************* FILESYS.C *********************************
- TRACE(("calling mediach(%d)",d));
- r = (int)mediach(d);
- TRACE(("mediach(%d) == %d", d, r));
-
- /* r = EUNDEV:
- * maybe the drive is not based on Harddisk, so the HDdriver says
- * EUNDEV.
- * Ask the Filesystem for Mediachange.
- * SE 16.08.93
- */
- if (r == EUNDEV)
- {
- TRACE(("request XFS for media change"));
- fs = drives[d]; /* get filesystem associated with drive */
- if (fs)
- if ((*fs->dskchng)(d)) { /* does the fs agree that it changed? */
- drives[d] = 0;
- changedrv(d); /* yes -- do the change */
- return 1;
- }
- else return 0;
- }
- if (r < 0) return r;
- *********************************************************************
-
-
- ***************************************************************************
- FS_UNMOUNT can't work, because in uni_fscntl in UNIFS.C the Filecookie does
- not point to a UNIFILE-structure.
-
- UNIFS.C procedure uni_fscntl:
- ********************************************************************
- } else if (cmd == FS_UNMOUNT) { /* remove a file system's directory */
- struct fs_descr *d = (struct fs_descr*)arg;
- FILESYS *fs;
- UNIFILE *u;
-
- /* first check that directory exists */
- r = uni_lookup(dir, name, &fc);
- if (r != 0) return EFILNF; /* name does not exist */
- if (!d) return EFILNF;
- if (!d->file_system) return EFILNF;
- if (d->file_system != fc.fs)
- return EFILNF; /* not the right name! */
-
- /* fc->index does not point to a UNIFILE struct, as i can see
- * in uni_lookup.
- * So I'll get u via search of u_root.
- * With this modification FS_UNMOUNT works fine with my XFS.
- * SE 30.08.93
- */
- for (u = u_root; u && u->fs != d->file_system; u = u->next)
- {
- }
-
- /* u = (UNIFILE*)fc.index; Korrigiert: SE 30.08.93 */
- #endif
- ***************************************************************************
-
-
-
- Any mistakes, bad grammar and formulations by:
-
- Steffen Engel, 05.03.94
-